﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SimpleTaskManager.Domain.Entities;

namespace SimpleTaskManager.Domain.Abstract
{
    /// <summary>
    /// An interface for a repository containing the entries of the working hours
    /// </summary>
    public interface IWorkingHoursEntryRepository
    {
        /// <summary>
        /// The collection of the entries
        /// </summary>
        IQueryable<WorkingHoursEntry> WorkingHoursEntries { get; }

        /// <summary>
        /// Adds a new entry to the collection
        /// </summary>
        /// <param name="hours">The entry to add</param>
        void Add(WorkingHoursEntry hours);

        /// <summary>
        /// Removes an entry from the collection
        /// </summary>
        /// <param name="id">The ID of the entry to remove</param>
        void Delete(int id);

        /// <summary>
        /// Saves the modifications of an entry
        /// </summary>
        /// <param name="hours">The enty to modify</param>
        void Edit(WorkingHoursEntry hours);
    }
}
